home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 026-050 / scopedisk35 / aplot13a / plot.doc < prev    next >
Text File  |  1995-03-18  |  9KB  |  252 lines

  1.  
  2.  
  3.  
  4.             Amiga Plot V1.3a Joe Martin 7/88  (C)Copyright 1988
  5.  
  6. **************************** *** NOTICE *** ***********************************
  7.  
  8.     This program is not public domain. All rights retained. Permision is
  9. granted to freely distribute this program as long as all documentation and
  10. notices remain intact. Charges for such distribution are NOT permitted except
  11. as a nominal disk charge !! 
  12.     
  13.     If you find this program useful, entertaining or educational, please donate
  14. $20 to the author. Source code is available for an additional $20 by sending
  15. check or money order to the address provided below. Donations will encourage
  16. updates and more features.
  17.  
  18. *******************************************************************************
  19.  
  20.  
  21.     Amiga Plot is a three dimesional mathematical function plotter.It takes
  22. a function, derived by the user, parses it into a partially compiled form and
  23. then calculates coordinates to be placed in the xyz system. AmigaPlot use
  24. hidden line removal based on a principle known as the painters algorithm. 
  25. Each time AmigaPlot goes to the screen it places a filled polygon. Starting
  26. from the most distant part of the plot it is constantly placing filled
  27. polygons in front of other polygons there by covering the hidden portions of
  28. the plot. Many aspects of the plot are user variable so that almost any
  29. combination of rotations, perspectives, and parameters for any function can
  30. produce infinite results. AmigaPlot is not intended for statistical analysis
  31. and the precision of the plot or its scale are not guaranteed.
  32.     The use of color in the plot can produce very pleasing effects
  33. especially when a feathered pallet is used. The idea of AmigaPlot is to
  34. provide an artistic approach to the sometimes dry subjects of Analytical
  35. Geometry and Trigonometry.
  36.  
  37.  
  38.     AmigaPlot was compiled on the Aztec C Compiler 3.6a
  39.     **** Minimum memory 512K - it uses most of it *****
  40.     ************ 1 or 2 meg recommended **************
  41.  
  42.     Address any questions, comments or bugs to:
  43.  
  44.         Joe Martin
  45.         Hobbit Hole  1-904-243-6219 8N1
  46.  
  47.             or
  48.         
  49.         Joe Martin
  50.         2702 Willow Grove Ln.
  51.         Ft. Walton Bch. Fl 32548
  52.  
  53. ******************************************************************************
  54.  
  55. known bugs:
  56.  
  57.     1-some functions can produce values out of range.
  58.     2-extreme values can burden the Amiga clipping routines by requiring 
  59.         more chip memory than is available ! 
  60.         (I've tried to help them out a little)
  61.     3-Rotations approaching 90 degrees will give distorted results(not really a
  62.         bug)
  63.     I'm working on better error checking but it'll be slow to come.
  64.     The Parser does very little error checking right now so watch your
  65.         spelling on trig function names.
  66.  
  67. ******************************************************************************
  68.  
  69. 1.3a 
  70.     -Fixed bug in file requestor that didn't follow paths correctly.
  71.     -Loads in special Images for windows etc.(3.6a would have booted me out of
  72.         small data otherwise.
  73.     -User friendly rotation parms(degrees) and smoothing parms(xincr and
  74.         yincr).
  75.         
  76. ******************************************************************************
  77.  
  78. 1.3 additions:
  79.  
  80.     1- save/load parameters and IFF support.
  81.     2- macro capability in function window.
  82.     3- sample functions(parms directory).
  83.     4- increased color span resolution to include floating point.
  84.     5- cosmetic window update.
  85.  
  86. Let's get to it !
  87.  
  88. ********** First MAKE SURE YOUR STACK IS SET TO AT LEAST 20000 **************
  89.  
  90. AmigaPlot is initialized at the CLI by 'Run Plot' (don't forget to set stack
  91.                             20000 first !)
  92.  
  93.     For convenience, the directory 'parms' is included and includes numerous
  94. function examples. These can be loaded from the 'Files' menu and make it
  95. extremely easy to play with and to alter different functions known to yield
  96. satisfatory results.
  97.     Also the directory 'pic' is included with one example of an Iff pic. This
  98. picture can be viewed with any showiff program.
  99.                             
  100. Three windows appear-
  101.     1- AmigaPlot window - for the plots.
  102.     2- Parms window     - gadgets to select and change parameters.
  103.     3- Function window  - for function input only.
  104.  
  105. There are three menus available for some parmameter changes, color etc.
  106.  
  107. Parms Window:
  108.  
  109. Gadgets: 
  110.     Start    starts plot
  111.  
  112.     Stop      stops plot in progress. Any parameter changes will go
  113.             into effect when the plot is restarted.
  114.  
  115.     YRot    changes perspective about the Y axis. range -90 - 90 degrees
  116.     XRot    changes perspective about the X axis. range -90 - 90 degrees 
  117.  
  118.     Object  changes depth perspective in conjuction with Image
  119.         distance from viewer to object
  120.     Image    changes depth perspective in conjuction with Object
  121.         distance from viewer to Image
  122.     
  123.     XRan    This number represents the the outside dimensions of the loop
  124.         which will provide a value for the 'X' variable in the function.
  125.         Ex XRan: 10 means a loop from -10 to 10
  126.     YRan    Dimensions the loop for the Y variable in the function
  127.  
  128.     Suggested ranges are from 25 down to 5. 
  129.  
  130.     XIncr    the step increment for the XRan loop 1 - 8
  131.     YIncr    the step increment for the YRan loop 1 - 8
  132.  
  133. Adjusting the X and Y increments will give the plot a smooth or jagged
  134. appearence on most plots. Smaller increments take a lot longer to plot(much
  135. more computing), but produce better pictures. '1' is smoothest, '8' coarsest.
  136.  
  137.     XTrans    this moves the center of the plot about the X axis
  138.     YTrans    this moves the center of the plot about the Y axis
  139.  
  140.     ScX    this will adjust the width of the plot by the Scale factor
  141.     ScY    this will adjust the height of the plot by the Scale factor
  142.  
  143.  
  144. Function Gadgets:
  145.  
  146. There are 3 string gadgets available for function input:
  147.  
  148.     f(x,y): this gadget is for entry of main function. Upper and lower case is
  149.             acceptable. Any operators, grouping sysbols, or trig function
  150.             names given below are acceptable.   
  151.  
  152.             Legal variable names : X,Y,A,B
  153.             
  154.     A=    : this gadget is useful for subfunctions and expressions and serves
  155.             as a macro for the main function f(x,y). If your main
  156.             function(f(x,y)) contains the 'A' variable, then this macro MUST
  157.             be defined in this gadget !
  158.             
  159.     B=    : this gadget is useful for subfunctions and expressions and serves
  160.             as a macro for the main function f(x,y). If your main
  161.             function(f(x,y)) contains the 'B' variable, then this macro MUST
  162.             be defined in this gadget !
  163.             
  164.     Editing : same as for any string gadget - cursor keys, del, backSp etc.
  165.  
  166.     operations :      +,-,*,/ divsion by zero is trapped.
  167.                     ^ to the power of
  168.                     
  169.     grouping   :    ()
  170.     
  171.     functions  :    ABS() absolute value of
  172.                     SQRT() Square root of
  173.                     SQR() Square of
  174.                     SIN() Sine of
  175.                     ASIN() ArcSine of
  176.                     COS() Cosine of
  177.                     ACOS() ArcCosine of
  178.                     TAN() Tangent of
  179.                     ATAN() Arctangent of
  180.                     LN()  Natural Logarithm of
  181.                     LOG() Base 10 Log of
  182.                     EXP() Exponential of
  183.  
  184. Menus:
  185.  
  186. File Menu     
  187.  
  188.  Quit -            Quit AmigaPlot (bye)
  189.  save
  190.     parms -     this will save all parameters for easy retrieval. A file
  191.                 requestor will prompt you for the file name. File name
  192.                 extensions of '.parms' are recommended.. 
  193.                 
  194.     IFF -       this will save the current visible screen to an IFF format
  195.                 image. A file requestor will prompt you for the file name and
  196.                 extensions of '.pic' are recommended.
  197.  
  198.  load
  199.     parms-      this will load a set of parameters, functions, window sizes,
  200.                 color map etc. When plot is first run 'Default.parms' is
  201.                 loaded if available. If you have a favorite function. then it
  202.                 can be loaded at startup by saving its' parms as
  203.                 'Default.parms'.
  204.                 
  205. Parameters Menu -     Same as the Parms gadgets(just for convience)
  206.  
  207. Display Menu -     
  208.  
  209.  Color Map - User selects color palette
  210.  
  211.  ColorSpan - User selects color position/span(what heigth you want each color
  212.              to kick in. Decimal fractions can be entered for finer color
  213.              resolution.
  214.              
  215.  XHatch -    Outlines complete polygon on screen
  216.  
  217.  Spec.Parms -    Two gadgets:
  218.  
  219.       Clip TAN - This is an adjustment for the TAN function which usually 
  220.             produces very high values(out off range). You can
  221.             adjust the tops of these spikes.
  222.             
  223.     Scale/0  - This one can adjust any case of division by zero. In other
  224.             words, instead of dividing by zero(which is undefined)
  225.             you can divide by the scale value.
  226.  
  227.     
  228. ******************************************************************************
  229.  
  230.     Here are some sample functions :
  231.  
  232. 1) COS((X^2+Y^2)/10)
  233.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  234.  
  235. 2) 2*SIN((X^2-Y^2)/10)
  236.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  237.  
  238. 3) .005*((X/Y)^2-(Y/X)^2)
  239.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  240.  
  241. 4) 3*SIN(-.05*(X^2-Y^2))-2*COS(.1*(X^2+Y^2))
  242.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  243.  
  244. 5) 4*(5*EXP(-(X^2+Y^2)/60)*SIN((X^2-Y^2)/10))
  245.    Object:130    Image:750      XRange:20    YRange:20    XYIncr:.5
  246.  
  247. 6) TAN((X^2+Y^2)/50)
  248.    Object:80    Image:750      XRange:12    YRange:12    XYIncr:.5
  249.  
  250.  
  251.         **** Have Fun ****
  252.